708A - Letters Cyclic Shift - CodeForces Solution


constructive algorithms greedy implementation strings *1200

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>

using namespace std;
using i64 = long long;

int main() {
    cin.tie(nullptr)->sync_with_stdio(false);
    cout.setf(ios::fixed), cout.precision(8);

    string s;
    cin >> s;

    int ok = 1;
    for (int i = 0; i < s.size(); i++) {
        if (s[i] != 'a' and ok) {
            int j = i;
            while (j < s.size() and s[j] != 'a') {
                s[j] = char(s[j] - 1);
                j++;
            }
            ok = 0;
            i = j - 1;
        }
    }

    if (ok == 1) s.back() = (s.back() == 'a' ? 'z': char(s.back() - 1));

    cout << s;

    return 0;
}


Comments

Submit
0 Comments
More Questions

1472B - Fair Division
1281C - Cut and Paste
141A - Amusing Joke
112A - Petya and Strings
677A - Vanya and Fence
1621A - Stable Arrangement of Rooks
472A - Design Tutorial Learn from Math
1368A - C+=
450A - Jzzhu and Children
546A - Soldier and Bananas
32B - Borze
1651B - Prove Him Wrong
381A - Sereja and Dima
41A - Translation
1559A - Mocha and Math
832A - Sasha and Sticks
292B - Network Topology
1339A - Filling Diamonds
910A - The Way to Home
617A - Elephant
48A - Rock-paper-scissors
294A - Shaass and Oskols
1213A - Chips Moving
490A - Team Olympiad
233A - Perfect Permutation
1360A - Minimal Square
467A - George and Accommodation
893C - Rumor
227B - Effective Approach
1534B - Histogram Ugliness